﻿using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Model.Tipologias;
using System.Collections;


namespace welwitschia.Tipologias
{
    public partial class WebFormTipologias : PaginaBase
    {
        ITipologiaService tipologias = new TipologiaService();
        String  TIPOOPCAO     = "Tipo Opção";
        String TIPOREFEICAO   = "Tipo Refeição";
        String TIPOSERVICO    = "Tipo Serviço";
        String CLASSEREFEICAO = "Classe Refeição";
        String MOEDAS         = "Moedas";
        String UNIDADEMEDIDA  = "Unidade Medida";
        
        public void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                String s = Request.QueryString["tipo"];
                hfTipo.Value = s;
                if (s == null)
                {
                    return;
                }
                String descritivoLable = String.Empty;
                if (s.Equals("TipoOpcao"))
                {
                    descritivoLable = TIPOOPCAO;
                }
                else if (s.Equals("TipoRefeicao"))
                {
                    descritivoLable = TIPOREFEICAO;
                }
                else if (s.Equals("TipoServico"))
                {
                    descritivoLable = TIPOSERVICO;
                }
                else if (s.Equals("ClasseRefeicao"))
                {
                    descritivoLable = CLASSEREFEICAO;
                }
                else if (s.Equals("Moeda"))
                {
                    descritivoLable = MOEDAS;
                }
                else if (s.Equals("UnidadeMedida"))
                {
                    descritivoLable = UNIDADEMEDIDA;
                }
                Label1.Text += descritivoLable;
                Button1.Text += " " + descritivoLable;

                BindListView(s);
            }
        }

        protected void Unnamed1_Click(object sender, EventArgs e)
        {
            String s = hfTipo.Value;
            if (s == null)
            {
                return;
            }
            Response.Redirect(@"~\tipologias\WebFormTipologiasEdit.aspx?tipo=" + s);
        }



        protected void ListView1_ItemDeleting(object sender, ListViewDeleteEventArgs e)
        {
            try
            {
                Tipologia tipologia = tipologias.ObterPorChave(e.Keys[0].ToString(), e.Keys[1].ToString());

                tipologias.Apaga(tipologia);
            }
            catch (Exception ex)
            {
                MostraErro(ex.Message);
            }

            BindListView(hfTipo.Value);
        }

        protected void ListView1_ItemEditing(object sender, ListViewEditEventArgs e)
        {
        }

        protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
        {
           if (e.CommandName == "Edit")
               Response.Redirect(@"~\tipologias\WebFormTipologiasEdit.aspx?cod=" + 
                                   e.CommandArgument.ToString().Split(';')[1] + 
                                   "&tipo=" + e.CommandArgument.ToString().Split(';')[0]);
        }

        protected void ListView1_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
        {
            dplvTipologias.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
            BindListView(hfTipo.Value);
        }


        #region Metodos auxiliares

        private void BindListView(String tipo)
        {
            ListView1.DataSource = (new TipologiaService()).ObterPorTipo(tipo);
            ListView1.DataBind();
        }

        #endregion

        /*

        protected void deleting(object sender, GridViewDeleteEventArgs e)
        {
            String s = Request.QueryString["tipo"];
            if (s == null)
            {
                return;
            }
           

                Tipologia tipo = tipologias.ObterPorChave(s, e.Values[2].ToString());
                tipologias.Apaga(tipo);
                GridView1.DataSource = tipologias.ObterPorTipo(s);
                GridView1.DataBind();

           


        }

        protected void editing(object sender, GridViewEditEventArgs e)
        {
            String s = Request.QueryString["tipo"];
            if (s == null)
            {
                return;
            }
            if (s.Equals("1"))
            {
                IList<Tipologia> listaTipologias1 = tipologias.ObterPorTipo("1");

            }
            else if (s.Equals("2"))
            {
                GridView1.DataSource = tipologias.ObterPorTipo("2");

            }
            else if (s.Equals("3"))
            {
                GridView1.DataSource = tipologias.ObterPorTipo("3");

            }
            else if (s.Equals("4"))
            {
                GridView1.DataSource = tipologias.ObterPorTipo("4");

            }
            else if (s.Equals("5"))
            {
                GridView1.DataSource = tipologias.ObterPorTipo("5");

            }
            else if (s.Equals("6"))
            {
                GridView1.DataSource = tipologias.ObterPorTipo("6");

            }

        }

               
            
        protected void GridView1_SelectedIndexChanged(object sender,EventArgs e){
            
            String s = Request.QueryString["tipo"];
            if (s == null)
            {
                return;
            }
            // Get the currently selected row using the SelectedRow
            
            GridViewRow row = GridView1.SelectedRow;

            Tipologia tipo = tipologias.ObterPorChave(s, row.Cells[2].Text);
            Response.Redirect(@"~\tipologias\WebFormTipologiasEdit.aspx?tipo=" + s + "&cod="+ tipo.Codigo);
        }*/
    }
}